約 2,535,665 件
https://w.atwiki.jp/nagasato/pages/64.html
#blognavi .bashrcと.bash_profileの違い .bash_profileは、ログイン時だけに実行される設定ファイル。シェルオプション(setオプション)を設定するのが一般的 .bashrcは、ログイン時に.bash_profileから読み込まれるという形で実行される。シェル変数や環境変数を設定するのが一般的 カテゴリ [linux] - trackback- 2006年03月28日 22 43 58 名前 コメント #blognavi
https://w.atwiki.jp/ozuka/pages/16.html
サンプル (前に使っていたもの。一緒に働いてた人からの貰い物です。ありがとうございました。) #--------------------------------------- # export #--------------------------------------- # follow bash original #PS1= \s-\v\$ if [ ! -z $BASH ]; then # follow bash only PS1= [\u@\W]\$ ; export PS1; stty -istrip else # follow bash / ksh PS1= [$LOGNAME@${PWD##*/}]$ ; export PS1; EDITOR=vi; export EDITOR; fi; #--------------------------------------- # alias #--------------------------------------- alias c= clear alias ll= ls -le alias la= ls -lae alias lsd= ls -lae | sort +5 alias lss= ls -lae | sort +4 alias p= ps -ef alias pp= ps -ejf # alias ee= vi alias vv= vi -R alias erc= vi ~/.bashrc alias rrc= . ~/.bashrc alias vvm= view ./makefile alias vvsh= view ./*.sh alias vvc= view ./*.c alias vvconf= view /-/-/-/-/system.conf # alias rm= rm -i #--------------------------------------- # function #--------------------------------------- hh() { cat __DOC__ hh hhc ffind [path] [exp] ffgrep [path] [exp] fffgrep [path] [exp-filename] [exp-grep] today now sd tzc [filename] [exclude-file] tzt [filename] [NA.] tzx [filename] zipr [filename] [path] {-i [exp]} __DOC__ alias echo "" } hhc() { cat __DOC__ man [keyword] | col -bfx hoge.txt diff -C 1 [file1] [file2] touch -t YYYYMMDDhhmm.ss [file] __DOC__ } ffind() { #if [ "$1" == "" ]; then if [ -z $1 ]; then echo ffind [path] [exp] else find $1 -type f | grep $2 fi; } ffgrep() { if [ -z $1 ]; then echo ffgrep [path] [exp] else find $1 -type f | xargs grep $2 fi; } fffgrep() { if [ -z $1 ]; then echo fffgrep [path] [exp-filename] [exp-grep] else find $1 -type f | grep $2 | xargs grep $3 fi; } today() { date +%Y%m%d } now() { date +%Y%m%d-%H%M%S } sd_help() { cat __DOC__ tst /-/-/-/-/tst bkup $HOME/-/-/bkup bin /-/-/-/-/bin conf /-/-/-/-/conf src /-/-/-/-/src inc /-/-/-/-/include lib /-/-/-/-/lib file /-/-/-/-/file webap /-/-/-/-/webap log/-/-/-/-/log @etc /etc @init.d /etc/init.d @ora $ORACLE_HOME @ora.bin $ORACLE_HOME/bin @ora.net $ORACLE_HOME/network/admin __DOC__ } sd () { case $1 in "tst")cd /-/-/-/-/tst;; "bkup")cd $HOME/-/-/-/-/bkup;; "bin")cd /-/-/-/-/bin;; "conf")cd /-/-/-/-/conf;; "src")cd /-/-/-/-/src;; "inc")cd /-/-/-/-/include;; "lib")cd /-/-/-/-/lib;; "file")cd /-/-/-/-/file;; "webap")cd /-/-/-/-/webap;; "log")cd /-/-/-/-/log;; "@etc")cd /etc;; "@init.d")cd /etc/init.d;; "@ora")cd $ORACLE_HOME;; "@ora.bin")cd $ORACLE_HOME/bin;; "@ora.net")cd $ORACLE_HOME/network/admin;; "")sd_help;; *) echo [$1] is unknown!! sd_help;; esac } tzc() { if [ -z $1 ]; then echo tzc [filename] [exclude-file] else tar cvf - $2 | gzip $1 fi; } tzt() { if [ -z $1 ]; then echo tzt [filename] else gzcat $1 | tar tvf - fi; } tzx() { if [ -z $1 ]; then echo tzx [filename] else #gzcat $1 | tar xvf - echo NA. fi; } zipr() { if [ -z $1 ]; then echo zipr [filename] [path] {-i [exp]} elif [ -z $3 ]; then zip -r $1 $2 else zip -r $1 $2 -i $3 fi; }
https://w.atwiki.jp/javamock/pages/55.html
for Javaにおいてfor文は繰り返し処理の制御を行います。 for文は以下のように記述します。 for (初期設定; 条件【boolean型データ】; 処理, 処理, 処理, ...) { 処理 } また、拡張for文は以下のように記述します。 for (データ型 変数名 コレクション型データ){ 処理 } for 使用例 1 ForSample1.java class ForSample1 { public static void main(String[] args) { for (int i = 0; i 10; i++) { System.out.println(i); } } } 実行結果 C \java javac ForSample1.java C \java java ForSample1 0 1 2 3 4 5 6 7 8 9 以上のように条件がtrueの間だけforのブロック内の処理が繰り返されます。 for 使用例 2 使い方はおかしいかもしれませんがこんなこともできるみたいです。 ForSample2.java class ForSample2 { public static void main(String[] args) { for (int i = 0; i 10; i++, System.out.println(i)) ; } } 実行結果 C \java javac ForSample2.java C \java java ForSample2 1 2 3 4 5 6 7 8 9 10 for 使用例 3 拡張for文の例です。 ForSample3.java import java.util.List; import java.util.ArrayList; class ForSample3 { public static void main(String[] args) { List String arrayList = new ArrayList String (); arrayList.add("for1"); arrayList.add("for2"); arrayList.add("for3"); for(String list arrayList) { System.out.println(list); } } } 実行結果 C \java javac ForSample3.java C \java java ForSample3 for1 for2 for3 for 使用例 4 拡張for文の例です。 ForSample4.java class ForSample4 { public static void main(String[] args) { String[] arrayData = new String[3]; arrayData[0] = "for1"; arrayData[1] = "for2"; arrayData[2] = "for3"; for (String array arrayData) { System.out.println(array); } } } 実行結果 C \java javac ForSample4.java C \java java ForSample4 for1 for2 for3 以上のように拡張for文は配列やコレクション型などで使用するときに便利です。
https://w.atwiki.jp/skmt200x/pages/156.html
BASHスクリプトにおけるメッセージング 目的 どうしておきたいか? 出力内容のフィルタ 標準エラー メッセージングのログ出力 コマンド・処理のログ出力補足 パイプ処理した場合のコマンドの戻り値について コマンド・処理の標準エラーのコンソール出力・ログ出力の扱い方 スクリプトのメッセージング・構造に関する方針1つ1つのステートメントで記述する方法 処理全体を関数化し、関数の戻りに対して、上記のメッセージング・ログ出力の処理を記述する方法 スクリプトでのメッセージング設計・実装に関して内部で呼び出してるコマンドの出力について TOPへ編集 目的 シェルスクリプトと言えども、メッセージング(コンソール出力・ログ出力)は割と重要なので、比較的どんな場合でも使えると思われる方針についてまとめてく。 どうしておきたいか? コンソールには最低限のコマンドを実行したユーザーに意味のあるメッセージのみ伝える。 ただし特定のタグ等でメッセージのフィルタさせることができること。 標準出力は捨てて、標準エラーのみ確認したいケースのみ対応できること。 ログには基本的に全ての内容を記録する。 ただし特定のタグ等で出力にフィルタさせることができること。 出力内容のフィルタ 基本的にはgrepでフィルタする。 echo "INFO any message" | grep "INFO " (結果) INFO any message TOPへ編集 標準エラー エラーについて標準エラーに出力する。 echo "ERROR any error statement." 2 | grep "INFO " (結果) ERROR any error statement. 尚、標準エラーは(標準出力にリダイレクトしない限り)|渡しの影響を受けないので、必ずユーザに通知させることができる。 TOPへ編集 メッセージングのログ出力 基本的にはリダイレクトを使う。 メッセージ出力と同時に行う場合はtee -aを用いる。 echo "INFO any message" |tee -a output.log | grep "INFO " (結果)コンソールおよびログに下記のように出力される。 INFO any message ちなみにこのパターンでは、コンソール出力しないもののログ出力することも可能。 echo "ERROR any message" |tee -a output.log | grep "INFO " (結果)ログのみに以下のように出力される。 ERROR any message このパターンによりデバッグやトレース的なメッセージを埋め込むことが可能。 TOPへ編集 コマンド・処理のログ出力 基本的にはリダイレクトを使う。 メッセージ出力と同時に行う場合はtee -aを用いる。 ls -la | tee -a output.log | grep "INFO " (結果) ※上記例は条件に合致しないので、ls -laの結果がログのみに出力される。 補足 パイプ処理した場合のコマンドの戻り値について コマンドの結果を|渡しした場合の注意点として、$?によるコマンドの戻り値が取得できなくなる点がある。 この場合は${PIPESTATUS[n]}を使うことで、各コマンドの戻り値を検査できる。 例えば ls -la not-found |tee -a output.log | grep "INFO " の場合 echo ${PIPESTATUS[@]} 2 0 1 順番に「ls -la not-found」の戻り値、「tee -a output.log」の戻り値、「grep "INFO "」の戻り値となる。 尚、PIPESTATUS環境変数は生存期間が、|を使ったコマンド呼び出しの直後のみであるため、|渡しした各コマンドの戻り値が必要な場合は、工夫が必要。 調べたら以下のような感じでコピーしておける模様。 declare -a REMAIN=(${PIPESTATUS[@]}) TOPへ編集 コマンド・処理の標準エラーのコンソール出力・ログ出力の扱い方 コマンド処理が中断されるような状況では、標準エラー出力されても良いかもしれないが、検査処理等でエラー前提の場合まで標準出力をそのまま出すのは望ましくない。 一方で、検査結果がエラーであった旨はログに残したい。 以下のようにかなりややこしい方法で、メッセージング&ログ出力する必要がある模様。 { { ls *.txt | tee output.log 3; } 2 1 | tee error.log 1 2;} 3 1 順番に見てくと (1) コマンドの標準出力結果をログにのみ出力 ls *.txt | tee output.log 3; の部分で、まず「ls *.txt」コマンドの標準出力をログに出力しつつ 3にリダイレクト (この時点では、画面には出力されていない)。 (2) コマンドの標準エラーをログ出力しつつ、標準エラーに出力。 { ~ } 2 1 | tee error.log 1 2; コマンド結果をteeで拾うために、標準エラーを標準出力にリダイレクト。 そのままログ出力・標準エラー出力。 (3) コマンドの標準出力を標準出力 { ~ } 3 1 上記の(1)で 3にリダイレクトした内容を、再び標準出力にリダイレクト。 こうすることで、標準出力と標準エラーを分けたままファイル出力が可能。 個人的にはファイル出力は分ける必要がなく、teeでファイル出力を行いつつ、標準出力/標準エラーと出したいため、この方法が最適であった。 以下のサイトを参考にした。 標準出力と標準エラー出力を別々のファイルと画面に出力する TOPへ編集 スクリプトのメッセージング・構造に関する方針 1つ1つのステートメントで記述する方法 処理を上から順番に処理する際、都度メッセージング処理を記述する。 { { ls *.txt | tee -a output.log 3; } 2 1 | tee -a output.log 1 2;} 3 1 細かい制御ができる反面、非常に冗長なスクリプトになってしまい保守性が下がる可能性がある。 処理全体を関数化し、関数の戻りに対して、上記のメッセージング・ログ出力の処理を記述する方法 処理は全てmain関数で処理する。 # $* function main() { ls *.txt } { { main $* | tee -a output.log 3; } 2 1 | tee -a output.log 1 2;} 3 1 スクリプトでのメッセージング設計・実装に関して 以下に示す考え方は、必ずしも全ての状況・スクリプトについて「完全な正解」というものではなく、目的に応じて使い分けていくことが必要と思われる。 内部で呼び出してるコマンドの出力について 考え方(1) 標準出力も標準エラーも全てログ出力のみとする。 スクリプトの内部で呼び出している処理は全てリダイレクトして、ログ出力のみ行う。 コマンドを実行した旨および戻り値をメッセージングする。 echo "ls command started." ls -la stdout.log 2 1 RTN=$? echo "ls command end (exit by $RTN)." if [ ${RTN} -ne 0 ]; then echo "any error occured."; ... fiu; 場合によっては、戻り値に応じた、エラーハンドリングを行う。 考え方(2) 繰り返し処理される処理はループハンドリングして、途中経過を示すメッセージングを行う。 この方法では、コマンドの出力を直接ユーザーに示せないので、大量のファイルコピー(cp)・同期(rsync)など、時間がかかる処理の場合にはコマンドが実行されているのかどうか?分かりにくい、という側面で若干不親切である。 下記のように途中経過を示す出力を行う。 I=1 find ~ -type f 2 /dev/null | while read OUTPUT do let I=I+1; if [ `expr ${I} % 10` -eq 0 ]; then printf "Now in progress... (${I} of all)\r" fi; sleep 1; done; サンプルコードなので、処理自体には全く意味がないのと、処理件数も適切ではないが、上記のように繰り返し処理において、標準出力内容を一定件数ごとにハンドリングして、スクリプトが動いてることをユーザーに知らせる。 最終更新日 [2015-03-01]
https://w.atwiki.jp/pxy12770/pages/33.html
# .bashrc # User specific aliases and functions alias rm= rm -i alias cp= cp -i alias mv= mv -i export http_proxy=http //hogehoge.net 8080 # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi if [ "$SSH_CLIENT" ]; then export DISPLAY="${SSH_CLIENT%% *} 0.0" fi if [ "$LOGGING" != "yes" ]; then export LOGGING="yes" script -c "bash --norc" ~/log/`date +%Y-%m-%d %T`_${SSH_CLIENT%% *} exit fi bind "\C-n" history-search-forward bind "\C-p" history-search-backward
https://w.atwiki.jp/kashisu/pages/92.html
Cranium Basher 価格 3220 材料 Mithril Hammer(1610)+Gauntlets of Strength(150)+Recipi(1460) 所持効果 攻撃力+30 Strength+3(HP+57,0.09HP/秒回復) Bash(Range 10%/Melee 15%,25ダメージ,1.1秒) 10%/15%の確率で、25の追加ダメージを与え、1.1秒間、敵をStunさせる。 Range攻撃では、発生率は10%でダメージは物理属性で、StunはSpell属性。 Melee攻撃では、発生率は15%でダメージはSpell属性で、Stunは物理属性。 コメント 目指せバッシュマン
https://w.atwiki.jp/wiki11_pochi/pages/26.html
はじめに bashにはpushdとその反対のpopdコマンドが内蔵されている。 pushdは指定されたディレクトリに移動後、移動先のディレクトリをDIRSTACK配列環境変数の先頭の要素として追加する。 popdはDIRSTACKの先頭の要素に保存されているディレクトリに移動後、その要素を削除して2番目の要素以降を先頭に1つずつ詰める。 pushdとpopdは移動先のディレクトリから移動前のディレクトリに戻りたいときに使用すると便利だが、ディレクトリの移動には日常的に使用するcdコマンドを使ってしまうため、popdで戻ろうとしても後の祭りとなることが多い。 そこで、cdコマンドに履歴機能を持たせることで、pushdやpopdよりも使い勝手の良いものを作成する。 スクリプトの作成 ~/.bashrcに以下のサブルーチンを追加する。 # 環境設定 # LAST_DIRLIST:最終DIRLIST要素番号(処理の都合上、最大DIRLIST要素数ではない) # SAVE_DIRLIST:DIRLISTの保存先ファイル名 LAST_DIRLIST=19 SAVE_DIRLIST=$HOME/.dirlist # ディレクトリの移動 # 使用法:chdir [dir] # dir:移動先のディレクトリ # 指定されていない場合はホームディレクトリに移動 # 説明:カレントディレクトリをDIRLIST配列環境変数の先 # 頭の要素として追加し、指定されたディレクトリに # カレントディレクトリを移動する。 # DIRLISTには最大で(LAST_DIRLIST + 1)件の履歴を保存する。 function chdir { if [ ${#DIRLIST[@]} -gt $LAST_DIRLIST ]; then unset DIRLIST[$LAST_DIRLIST] fi DIRLIST=(`pwd` ${DIRLIST[@]}) cd $* } # 過去のディレクトリに移動 # 使用法:unchdir [num] # num:過去の履歴の番号(1=1つ前、2=2つ前、…) # 指定されていない場合は1つ前に移動 # 説明:指定された履歴番号(DIRLISTの添え字)の要素を # DIRLISTから削除し、カレントディレクトリを先頭 # の要素として追加して、削除した要素に保存され # ていたディレクトリにカレントディレクトリを移 # 動する。 function unchdir { if [ ${#DIRLIST[@]} -eq 0 ]; then echo "No changing directory" return 1 fi if [ $# -eq 0 ]; then i=0 else i=$1 if [ $i -le 0 ]; then i=1 elif [ $i -gt ${#DIRLIST[@]} ]; then i=${#DIRLIST[@]} fi i=`expr $i - 1` fi d=${DIRLIST[$i]} unset DIRLIST[$i] DIRLIST=(`pwd` ${DIRLIST[@]}) cd $d } # 過去のディレクトリに戻る # 使用法:backdir [num] # num:過去の履歴の番号(1=1つ前、2=2つ前、…) # 指定されていない場合は1つ前に戻る # 説明:先頭から指定された履歴番号(DIRLISTの添え字) # までの要素をDIRLISTから削除し、指定された要素 # に保存されていたディレクトリにカレントディレ # クトリを移動する。 function backdir { if [ ${#DIRLIST[@]} -eq 0 ]; then echo "No changing directory" return 1 fi if [ $# -eq 0 ]; then i=0 else i=$1 if [ $i -le 0 ]; then i=1 elif [ $i -gt ${#DIRLIST[@]} ]; then i=${#DIRLIST[@]} fi i=`expr $i - 1` fi d=${DIRLIST[$i]} DIRLIST=(`awk "BEGIN {for (i = $i + 2; i ARGC; i++) {print ARGV[i], "\n";}}" ${DIRLIST[@]}`) cd $d } # ディレクトリの移動履歴を表示 # 使用法:printdir # 説明:DIRLISTの全要素を履歴番号(DIRLISTの添え字) # 付きで表示する。 function printdir { echo ${DIRLIST[@]} | awk {for (i = 1; i = NF; i++) { printf "[%d] %s\n", i, $(i); }} } エイリアスの設定 ~/.bashrcに以下のエイリアスを追加する。 ただし、上記「スクリプトの作成」に記載したサブルーチンの後に追加しないと、例えば、chdirが実行するcdがchdirに置き換えられるため、無限にchdirを呼び出すことになり、その結果、スタックオーバーフローが発生する。 # 現在のcdコマンドの拡張など alias cd="chdir" alias ud="unchdir" alias bd="backdir" alias pd="printdir"
https://w.atwiki.jp/emeditor/pages/137.html
説明 箱形選択された領域に連番を挿入する 箱形選択して実行すると開始番号の入力を求められる そのときに、数字の前方に空白や0をいれると、先頭文字を使い文字列長にあわせて桁をあわせる 既知の問題 実行後、未選択状態になる 実行後、カーソル位置が元の選択領域の左上の位置にしてしまっている 「元に戻す」で一気に戻せない 折り返しを気にして、後ろから処理してしまっている 開始番号を負数にすると桁数あわせ処理が原因でおかしなことになる ソース(.jsee) if( document.selection.IsEmpty || (document.selection.Mode eeModeMask) != eeModeBox ){ alert( 箱形選択してください ); }else{ // 開始番号の入力を求める var ScriptControl = new ActiveXObject( ScriptControl ); ScriptControl.Language = VBScript ; ScriptControl.AddCode( Function Input(x,y,z)\nInput=InputBox(x,y,z)\nEnd Function ); var str = ScriptControl.Run( Input , 開始番号を入力してください , 連番挿入マクロ , 1 ); if( !str ) Quit(); var no = Number( str ); while( isNaN(no) ){ str = ScriptControl.Run( Input , 開始"番号"を入力してください , 連番挿入マクロ , str); if( !str ) Quit(); no = Number( str ); } // 桁あわせのための情報を得る var digit = str.length; var fill = str.substring(0,1); if( fill.length = 0 ) fill = ; // 選択領域の情報を得る var tx = document.selection.GetTopPointX( eePosView ); var ty = document.selection.GetTopPointY( eePosView ); var bx = document.selection.GetBottomPointX( eePosView ); var by = document.selection.GetBottomPointY( eePosView ); var lx = (tx bx) ? tx bx, rx = (tx bx) ? tx bx, y, n = by - ty + no; // 挿入 for( y = by ; y = ty ; --y, --n ){ var s = + n; while( s.length digit ) s = fill + s; document.selection.SetActivePoint( eePosView, lx, y, false ); document.selection.SetActivePoint( eePosView, rx, y, true ); document.selection.Text = s; } // カーソルを、とりあえず元の選択領域の左上の位置にする document.selection.SetActivePoint( eePosView, lx, ty, false ); }
https://w.atwiki.jp/kobapan/pages/199.html
Android の SDカードがいきなり読み取り不良になった TestDisk - CGSecurityを使って復帰したものの、なんかまだ動作がおかしい Android では mount できるのに、Debian だと勝手に mount 解除されてしまう 動いているうちに、Android へ adb で繋いで PC にフルバックアップしておこう と思ったら、そんなことに特化したアプリやスクリプトが見つからない のでシェルスクリプトを作る Android から PC へファイルをコピーする adb コマンド adb pull /sdcard/FILE ./FILE これで FILE にはファイル名でもディレクトリ名でもよい これを shell でループさせる #!/bin/bash # sdcard backup script for Android # via adb ( Android SDK ) # # 1. # 事前に adb server を起動しておくこと # $ sudo adb start-server # # 2. # 実行するとカレントディレクトリにsdcardの中身をぶちまけるので、 # 事前にバックアップ用のディレクトリを作ってその中に入ること for LINE in `adb shell ls -a --color=never /sdcard` do FILE=($(echo -n $LINE|tr "\r" "\n")) if test "$FILE" != "." test "$FILE" != ".." ; then adb pull /sdcard/${FILE} ./${FILE} fi done Android SDK の構築の仕方 http //www20.atwiki.jp/kobapan/pages/194.html
https://w.atwiki.jp/matsutips/pages/8.html
シェルプログラムのTips&サンプルプログラム 拡張子の一括変更 bashでログインしても.bashrcが反映されない シェル中で数値を扱いたい 整数・小数演算 日付の自動表示 複数文字列のor指定 第n行を表示する 連番を表示(seq) 拡張子の一括変更 #!/bin/sh while [ -n $1 ]; do #第一引数$1がゼロでない(-n)なら実行 ${1/pnm/png} #pnmをpngで置換する shift #引数をずらす done #終了 for old in *.pnm; do new=`echo $old | sed "s/pnm/png/g"`; mv $old $new; done bashでログインしても.bashrcが反映されない .bash_profileで設定する必要がある。(詳細はbashのマニュアル) 具体的には、.bash_profile内に . ~/.bashrc を(もしくは同様の記述、source .bashrcなどを)書く。 シェル中で数値を扱いたい 普通に宣言するだけではシェルスクリプトは全て文字として判断する。例えば、 $ a=1 $ b=$a+1 $ echo $b 1+1 みたいになる。これを解決するためには、declare -iで宣言してやる必要がある。参照ページ $ declare -i a=1 b=0 $ b=$a+1 $ echo $b 2 整数・小数演算 もっとも有名なのは expr で、これは引数に演算式を与えると演算してくれる。 $ expr 1 + 1 2 ただし、expr は、演算子の前後にスペースを入れないとエラーになる(スペース区切りで構文解析をしているため)。 $ expr 1+1 1+1 使える演算は、四則演算+剰余と、その他文字列とか論理和・積など。参照ページ 小数演算をしたい場合は bc を使う。ただし、こっちは引数ではとってくれないため、 echo を使って流し込む必要がある。 $ echo "1.1 + 2.2" | bc -l 3.3 日付の自動表示 これは結構色んなとこでも書いているが、実際使ったから記述。 シェルスクリプト内で日付を入れたものを作りたいときはdateコマンドを利用する。 例えば、 mkdir `date +%Y%m%d` とかすると今日の年月日のフォルダを作ることができる。 よく使う実験用シェルスクリプトとかに入れておくと勝手に日付管理してくれて便利。 複数文字列のor指定 結構記述がなかったのでメモ。 例えば、 file_a.txt file_b.txt の両方を指定したい場合は ls file_[ab].txt みたいに書く。では、file_one.txt file_two.txtの両方を指定する場合はどうするか。 ls file_{one,two}.txt みたいに{}を使って書く。 ただし、[]は好意的に(あれば含めるし、なければ無視)とってくれるが、{}は両方必ず指定される。つまり、上の例では file_b.txt がなくてもエラーはでないが、 file_two.txt がないと ls file_two.txt そのようなファイルやディレクトリはありません と怒られる。 第n行を表示する ファイルの第N行目だけ、もしくはM-N行目を表示したいってとき、ありますよね? sed -ne Np hoge で、N行目だけ出る。-nはpで出力しなければ出力しないという引数で、sedはN行目だけマッチしてpで出力する。他の行は無視される。 同様に、 sed -ne M,Np hoge でM-N行目が出力される。 連番を表示(seq) seq M N でMからNまでが連番で出力される。 1-10みたいなときに桁数を揃えたい場合は seq -w 1 10 にすると 01 02 03 04 05 06 07 08 09 10 となる。 また、 seq -f %03g 1 5 みたいにすると 001 002 003 004 005 みたいに形式を揃えることができる。デフォルトは %g を使用。基本はprintfと同じ。